/*
 * 获取特定规则待编译js文件
 *
 * glob模块：
 *   路径模式匹配:可以获取指定目录文件夹下的特定规则文件
 *
 * 特定规则：
 *   例如：打包app目录下面的 【**_entry.{js,jsx,vue}】
 *
 * 返回值：
 *   一个对象 【多入口写法】
 *   {
 *     "entry1": "xx/xx/xx/fiename.js",
 *     ...
 *   }
 *   
 * @author li.xiaoxi
 * @date 2016-12-22
 */

var findArgv = function(item){
  var argvs = process.argv;
  for(var i = 0, len = argvs.length; i<len; i++){
    if(argvs[i].indexOf(item)!==-1){
      return argvs[i];
    }
  }
  return '';
}

module.exports = function(env){
  var path = require('path')
  var glob = require('glob')
  var hotMiddlewareScript = 'webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000&reload=true';


  //全局配置
  var global_config = global.think_config,
      webpack_config = global_config.webpack;

  var cwd = process.cwd(),
      //例如：打包app目录下面的 【**_entry.{js,jsx,vue}】
      url = path.resolve(cwd, global_config.init.app, webpack_config.entryJsRule),
      files = glob.sync(url),
      map = {};

  //如果env是本地环境，则加入热更新，自动刷新配置

  if(files && files.length) {
    files.forEach(function(file_path){
      var file_name = file_path.substring(file_path.lastIndexOf('\/') + 1,
        file_path.lastIndexOf('.'));
      if(env=='dev'&&findArgv('hot')) {
          map[file_name] = [file_path, hotMiddlewareScript];
      } else {
          map[file_name] = file_path;
      }
            
      //map[file_name] = [path.resolve(__dirname,'../../../../node_modules', 'webpack-hot-middleware/client?reload=true'),file_path];
    });
  }

  return map;

}
